package com.wgy.Day28异常.异常注意事项;

/*
4.如果父类抛出多个异常,子类覆盖重写父类方法时,只能抛出和父类相同的异常或者是父类异常的子类或者不抛出异常
5.父类方法没有抛出异常,子类重写父类方法该方法也不可抛出异常.此时子类产生该异常,只能捕获处理,不能声明抛出
 */
public class Demo10异常注意事项父子类 {

}

class Fu {
    public void show01() throws NullPointerException, ClassCastException {
    }

    public void show02() throws IndexOutOfBoundsException {
    }

    public void show03() throws IndexOutOfBoundsException {
    }

    public void show04() {
    }
}

class Zi extends Fu {
    //子类重写父类方法时,抛出和父类一样的异常
    public void show01() throws NullPointerException, ClassCastException {
    }

    //子类重写父类方法时,抛出父类异常的子类
    public void show02() throws ArrayIndexOutOfBoundsException {
    }

    //子类重写父类方法(抛出异常)时,不抛出异常
    public void show03() {
    }

    //子类重写父类方法(没有抛出异常)时,子类也不能抛出异常
    /* public void show04() {
    }           正确写法   */

    /*  public void show04() throws Exception {
          throw new Exception("编译期异常");
      }          错误写法   */

    //正确写法
    public void show04() {
        try {
            throw new Exception("编译期异常");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}